Weighted slant stack for attenuating seismic noise

ABSTRACT

A method and apparatus are disclosed for attenuating noise in seismic data including a plurality of input traces. The method includes transforming the seismic data from the space-time domain into the slant-stack domain. Seismic data having a preselected characteristic is excluded when the transforming into the slant-stack domain. The transformed data is inverse transformed from the slant-stack domain into the time space domain. The method and apparatus may include anti-alias filtering the seismic traces. The method and apparatus may include p-anti-alias filtering seismic traces.

FIELD OF THE INVENTION

[0001] The invention relates to the field of attenuating noise in signals. More particularly, the invention relates to attenuating incoherent, impulsive and coherent noise in seismic data. Even more particularly, the invention relates to using a weighted slant stack to attenuate incoherent, impulsive and coherent noise in seismic data.

BACKGROUND OF THE INVENTION

[0002] Geophysicists collect seismic data and analyze it to determine the characteristics of underground and undersea formations. Such information is useful in the search for hydrocarbons and other minerals.

[0003] In its raw, unprocessed form, seismic data consists of a large number, typically millions, of “traces.” Each trace is a recording of a signal which represents the seismic energy emitted by a seismic transmitter, reflected off underground formations and received by a receiver. The seismic energy may be transmitted by an underground or undersea explosion or the action of a vibrator truck or through some other means of imparting energy into the earth. The seismic data typically includes signals gathered from receivers arrayed in two dimensions over a geographical region to be analyzed. Typically, a number of traces is gathered from each receiver, with the location of the source of the seismic energy being varied from one trace to the next.

[0004] In many cases, analysis of the seismic data is complicated by unwanted noise recorded in the traces along with the signal. The noise may include incoherent noise, impulsive noise or coherent noise or all of those together. Incoherent noise is random noise such that the incoherent noise from two or more traces tends to have a low level of correlation. Impulsive noise tends to appear in the form of spikes or abnormally large amplitudes in isolated portions of a seismic trace or in a whole trace in a number of traces of the seismic data set. Coherent noise tends to correlate among traces and, in many cases, can be grouped early in the processing of the seismic data into sets having identifiable “time dips.”Incoherent noise is traditionally attenuated by “stacking” or adding a group of traces together. Since incoherent noise is random, it tends to be eliminated by the stacking process. More effective elimination of incoherent noise is accomplished by a technique called f-x-y prediction error filtering (fxy PEF). This technique predicts the signal in the x-y space at each temporal frequency f, thereby reducing the incoherent noise, which is not predictable.

[0005] Impulsive noise is usually attenuated using statistical techniques in running windows in which abnormally large amplitudes are edited based on certain types of average measurement. Other techniques use adaptive filtering or neural networks. These algorithms are based on prior training on data containing a typical signal and typical noise. Once the algorithm understands what the signal is and what the noise is, the algorithm is applied to a data set.

[0006] Existing techniques for attenuating coherent noise include transforming the traces from the space-time domain into a transform domain, such as the f-k or Radon or slant-stack domain, in which the signal is separated from the noise. The noise is muted in the transform domain and the signal is transformed back into the space-time domain for further processing. Since the noise was muted in the transform domain, it is attenuated in the space-time domain. For example, coherent noise having a particular time dip may be separated from the signal in transforming a trace into the Radon or slant-stack transform domain where it can be muted.

[0007] Other existing technologies include combining the diversity stack technique with the slant stack technique. In this technique, incoherent noise is attenuated by a variation on the diversity stack technique and coherent noise is attenuated by transforming the traces to the Radon or slant-stack domain, muting the traces associated with the coherent noise, and transforming the traces back into the space-time domain. The impulsive noise is also attenuated by the diversity technique by suppressing abnormally large amplitudes present in the amplitude array to be stacked.

SUMMARY OF THE INVENTION

[0008] In general, in one aspect, the invention features a method of attenuating noise in seismic data including a plurality of input traces. The method includes transforming the seismic data from the space-time domain into the slant-stack domain. Seismic data having a preselected characteristic is excluded when the transforming into the slant-stack domain. The transformed data is inverse transformed from the slant-stack domain into the time space domain.

[0009] Implementations of the invention may include one or more of the following. Transforming may include transforming the seismic data from the space-time domain into the τ-p domain. Excluding may include excluding data corresponding to the coordinates: t=τ+px, where t is time, τ is a t-axis intercept, x is a signed distance from an origin and p is a slope. Transforming may include transforming the seismic data from the space-time domain into the τ-p_(x)-p_(y) domain. Excluding may include excluding data corresponding to the coordinates: t=τ+p_(x)x+p_(y)y, where t is time, τ is a t-axis intercept, x is a signed distance from an origin in a first direction, y is a signed distance from an origin in a second direction, p_(x) is slope in the first direction, and p_(y) is slope in the second direction.

[0010] In general, in another aspect, the invention features a method of attenuating noise in seismic data. The method includes accepting seismic data comprising a plurality of traces arrayed in two physical dimensions and a time dimension. The method further includes transforming the seismic data into the slant stack domain using a Radon transform.

[0011] Implementations of the invention may include one or more of the following. The Radon transform may include a three-dimensional transform using the following equation: ${T\left( {\tau,p_{x},p_{y}} \right)} = \frac{\begin{matrix} {N \cdot {\sum\limits_{x = a}^{b}{\sum\limits_{y = c}^{d}{{S_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)} \cdot}}}} \\ {F_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)} \end{matrix}}{\sum\limits_{x = a}^{b}{\sum\limits_{y = c}^{d}{F_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)}}}$

[0012] where:

[0013] N is the number of traces in the plurality of traces;

[0014] S_(x,y)(t) is a subset of the plurality of traces;

[0015] F_(x,y)(t) is a scaling function;

[0016] x is a distance in a first direction;

[0017] p_(x) is a slope in the first direction;

[0018] y is a distance in a second direction;

[0019] p_(y) is a slope in the second direction;

[0020] a and b for the first direction and c and d for the second direction define a volume to be transformed;

[0021] t is time in the space-time domain;

[0022] τ is intercept time in the τ-p domain; and

[0023] T(τ,p_(x), p_(y)) is the output data.

[0024] The following equation may apply: ${F_{x,y}(t)} = \frac{1}{{\overset{\_}{S}}_{x,y}(t)}$

[0025] where

[0026] {overscore (S)}_(x,y)(t) is an average of S_(x,y)(t) over predetermined ranges of x, y and t for each x, y and t.

[0027] The following equation may apply: ${F_{x,y}(t)} = \frac{1}{{\overset{\_}{S}}_{x,y}^{2}(t)}$

[0028] where

[0029] {overscore (S)}² _(x,y)(t) is an average of S² _(x,y)(t) over predetermined ranges of x, y and t for each x, y and

[0030] a, b, c and d may be such that x and y span S_(x,y)(t). a, b, c and d may be such that x and y define a subset of S_(x,y)(t). The subset defining S_(x,y)(t) may be the full set.

[0031] The method may include Fourier transforming T(τ,p_(x), p_(y)), multiplying the Fourier-transformed data by ω²; and inverse-Fourier transforming the Fourier-transformed data.

[0032] The Radon transform may include a two-dimensional transform using the following equation: ${T\left( {\tau,p} \right)} = \frac{N \cdot {\sum\limits_{x = a}^{b}{{S_{x,y}\left( {{\tau + {p\quad x}},x} \right)} \cdot {F_{x,y}\left( {{\tau + \quad {p\quad x}},x} \right)}}}}{\sum\limits_{x = a}^{b}{F_{x,y}\left( {{\tau + {p\quad x}},x} \right)}}$

[0033] where:

[0034] N is the number of traces in the plurality of traces;

[0035] S_(x,y)(t) is a subset of the plurality of traces;

[0036] F_(x,y)(t) is a scaling function;

[0037] x is a distance from the origin;

[0038] p is a slope;

[0039] a and b define a slice of data to be transformed;

[0040] t is time in the space-time domain;

[0041] τ is intercept time in the τ-p domain; and

[0042] T(τ,p) is the output data.

[0043] The method may include Fourier transforming T(τ,p), multiplying the Fourier-transformed data by ω, and inverse-Fourier transforming the Fourier-transformed data.

[0044] The method may include applying an anti-aliasing filter. Applying may be performed in the slant stack domain.

[0045] The method may include applying a matched filter to compensate for limited spatial aperture.

[0046] The method may include inverse Radon transforming the transformed data.

[0047] In general, in another aspect, the invention features a method of attenuating noise in seismic data. The seismic data includes a plurality of traces arrayed in two physical dimensions and the time dimension. The method includes:

[0048] (a) selecting a volume, the volume comprising a subset of the plurality of traces;

[0049] (b) transforming the volume into the slant stack domain using a Radon transform;

[0050] (c) inverse transforming the transformed volume into the time domain using a inverse Radon transform; and

[0051] (d) repeating elements (b) and (c) with a new volume.

[0052] Implementations of the invention may include one or more of the following. The new volume may overlap the volume.

[0053] The method may include iteratively repeating elements (b) and (c) with new volumes for each iteration, each successive new volume overlapping the preceding new volume.

[0054] The plurality of traces may be arrayed in rows and the overlap between each successive new volume and the preceding new volume may be one row.

[0055] In general, in another aspect, the invention features a method of attenuating noise in zero offset and/or common offset seismic data. The seismic data includes a plurality of input traces. The method includes:

[0056] (a) computing scaling traces from the input traces;

[0057] (b) modifying the input traces using the scaling traces;

[0058] (c) slant-stack transforming the modified input traces, excluding slopes corresponding to coherent noise from the slant-stack transform, to produce slant-stack-domain signal traces;

[0059] (d) slant-stack transforming the scaling traces to produce slant-stack-domain scaling traces;

[0060] (e) modifying the slant-stack-domain signal traces using the slant-stack-domain scaling traces;

[0061] (f) scaling and filtering the modified slant-stack-domain signal traces to produce weighted slant stacked traces;

[0062] (g) inverse slant-stack transforming the weighted slant stacked traces; and

[0063] (h) scaling the inverse-slant-stack-transformed weighted slant stacked traces.

[0064] In general, in another aspect, the invention features a computer program for attenuating noise in seismic data. The computer program executes on a computer processor. The computer program resides on computer readable media. The computer program includes computer code for causing the computer processor to transform the seismic data from the time-space domain into the slant-stack domain. The computer code for causing the computer processor to transform the seismic data includes computer code for excluding seismic data having a preselected characteristic and transforming the transformed data from the slant-stack domain into the time-space domain.

[0065] In general, in another aspect, the invention features an apparatus for attenuating noise in seismic data. The seismic data includes a plurality of input traces. The apparatus includes a means for transforming the seismic data from the time-space domain into the slant-stack domain. The transforming means includes means for excluding, during said transforming into the slant-stack domain, seismic data having a preselected characteristic. The apparatus further includes means for transforming the transformed data from the slant-stack domain into the time-space domain.

[0066] In general, in another aspect, the invention features an apparatus for anti-alias filtering seismic traces including a means for calculating a Nyquist dip p_(N). The apparatus further includes a means for selecting one or more dip traces having magnitudes greater than the Nyquist dip. The apparatus further includes a means for calculating an alias frequency f_(alias). The apparatus further includes a means for applying an FFT to the selected dip traces to produce transformed selected dip traces including samples. The apparatus further includes a means for zeroing all samples in each of the transformed selected dip traces with frequencies greater than f_(alias).

[0067] Implementations of the invention may include one or more of the following. The apparatus may include means for cosine tapering the zeroed transformed selected dip traces. The apparatus may include a three-dimensional anti-aliasing filter and the means for calculating a Nyquist dip p_(N) may include applying the following equation: ${p_{N} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot f_{Nyquist}}};$

[0068] where

[0069] Δx and Δy are sampling intervals in the x and y directions, respectively; and

[0070] f_(Nyquist) is the Nyquist frequency.

[0071] The apparatus may include a two-dimensional anti-aliasing filter and the means for calculating a Nyquist dip p_(N) may include applying the following equation: ${p_{N} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot f_{Nyquist}}}};$

[0072] where

[0073] Δx is the sampling interval in the x direction; and

[0074] f_(Nyquist) is the Nyquist frequency.

[0075] The apparatus may include a three-dimensional anti-aliasing filter and the means for calculating an alias frequency f_(alias) may include applying the following equation: ${f_{alias} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot \sqrt{p_{x}^{2} + p_{y}^{2}}}};$

[0076] where

[0077] Δx and Δy are the sampling intervals in the x and y directions, respectively;

[0078] p_(x) is the current dip in the x-direction;

[0079] P_(y) is the current dip in the y-direction; and

[0080] f_(alias) is the Nyquist dip.

[0081] The apparatus may include a two-dimensional anti-aliasing filter and the means for calculating an alias frequency f_(alias) may include applying the following equation: $f_{alias} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot p}}$

[0082] where

[0083] Δx is the sampling interval in the x direction; and

[0084] p is the current dip.

[0085] In general, in another aspect, the invention features a method for p-anti-alias filtering seismic traces. The method includes applying a weighted slant stack algorithm to the seismic data for a flat dip range to produce a first result. The method further includes subtracting the first result from the seismic data to produce a second result. The method further includes applying the weighted slant stack algorithm to the second result to produce a third result. The method further includes adding the third result to the first result.

[0086] Implementations of the invention may include one or more of the following. The flat dip range may be centered around zero dip.

BRIEF DESCRIPTION OF THE DRAWING

[0087] FIG. F100 is a block diagram of a seismic data processing system.

[0088] FIGS. F200, F300 and F400 are flow charts of seismic data processing according to the present invention.

[0089] FIG. F500 is a perspective view of a volume of seismic traces.

[0090] FIG. F600 is a view of the volume of seismic traces shown in FIG. F500 along lines VI.

[0091] FIG. F700 is a flow chart of an anti-alias filter according to the present invention.

[0092] FIG. F800 is a flow chart of a spatial anti-alias filter according to the present invention.

[0093] FIG. F900 is a representation of seismic data, a flat dip line and a steep dip line.

[0094] FIG. F1000 is a flow chart of a p-anti-alias filter according to the present invention.

[0095] FIG. F1100 is a block diagram of a matched filter according to the present invention.

[0096] FIG. F1200 is a flow chart of a residual filter according to the present invention.

DESCRIPTION OF EXAMPLE EMBODIMENTS OF THE INVENTION

[0097] Geophysicists and other scientists and engineers use seismic data collecting equipment 1002 to collect raw seismic data which is stored on a memory device 1004 which, according to one example embodiment, comprises a magnetic or optical disk drive, a tape drive, or other memory devices that would occur to those of skill in the art, as shown in FIG. F100. Seismic data processing equipment 1006 is used to process the seismic data. The seismic data processing equipment 1006 includes, in an example embodiment, a computer, a signal processor, or other signal analysis and processing equipment. In some embodiments, the seismic data processing equipment includes equipment useful in formatting and displaying seismic data on a display screen or on a paper printout. Further, the seismic data processing equipment stores the processed seismic data on a memory device 1008. In some embodiments, memory device 1008 comprises the same memory device where the raw seismic data is stored. In other embodiments, it comprises another memory device.

[0098] According to one non-limiting example embodiment of the invention, the processing performed by the seismic data processing equipment 1006 begins with pre-weighted slant stack processing 2002, as shown in FIG. F200. In various embodiments, this includes such conventional processing as statics, spherical divergence corrections, deconvolution, amplitude recovery and stack for the poststack application of the weighted slant stack technique. For the prestack application, only statics and spherical divergence correction are required. Any combination of the foregoing, or even additional processes known to those of skill in the art, are performed according to a variety of embodiments of the invention.

[0099] The next procedure is to perform the weighted slant stack processing 2004, which is discussed in more detail in the description of FIGS. F300 and F400. Finally, the seismic data processing equipment 1006 performs post-weighted slant stack processing 2006. In various embodiments, such processing includes conventional processing, such as dip move out, stack migration, filtering the resulting data, and displaying the data on a computer display. Again, any combination of the foregoing or further processing is performed according to alternative embodiments of the invention.

[0100] The weighted slant stack processing 2004 can be performed on pre-stack data or post-stack data, as illustrated in FIG. F300. If the post-stack route is followed, a normal moveout (NMO) is applied to the preprocessed data (block 3001) to produce:

I_(x,y)(t)  (1)

[0101] which indicates that the data is distributed in two dimensions in space (x and y) and in time. The result is stacked to produce zero offset data (block 3003):

S_(x,y)(t)  (2)

[0102] If the pre-stack route is followed, I_(x,y)(t) is formed from raw data (block 3002). NMO processing may be applied, but it is not necessary to do so. The weighted slant stack processing 2004 sorts the raw data into common offset volumes (block 3004) to produce S_(x,y)(t). In either case, the weighted slant stack processing 2004 selects a volume of data to be processed (block 3005). The selected volume is denoted S_(x′,y′)(t) with the subscripts being primed. If the post-stack route is followed the volume will contain zero offset data. If the pre-stack route is chosen, the volume will be one of the common offset volumes formed in the preceding step. Both routes invoke the concept of local slant stacks.

[0103] The weighted slant stack processing 2004 then computes scaling functions (block 3006):

F_(x′,y′)(t)  (3)

[0104] In various embodiments, the scaling function takes a variety of forms, depending on whether it is desired to normalize the amplitude, or the power, or some other feature of the zero-offset or common offset data. In one example embodiment in which the amplitude of the zero-offset or common offset data is normalized, the following function, or some variant, is used: $\begin{matrix} {{F_{x^{\prime},y^{\prime}}(t)} = \frac{1}{{\overset{\_}{S}}_{x^{\prime},y^{\prime}}(t)}} & (4) \end{matrix}$

[0105] where {overscore (S)}_(x′,y′)(t) consists essentially of the average amplitude over a portion of the trace at location (x′,y′). In two alternative examples, {overscore (S)}_(x′,y′)(t) consists essentially of the windowed average over a segment of that trace. The scalers are computed in moving windows in all traces of the subvolume of data. In an alternative embodiment, when the power of the zero-offset or common offset data is normalized, the following function, or some variant, is used: $\begin{matrix} {{F_{x^{\prime},y^{\prime}}(t)} = \frac{1}{{\overset{\_}{S}}_{x^{\prime},y^{\prime}}^{2}(t)}} & (5) \end{matrix}$

[0106] where {overscore (S)}² _(x′,y′)(t) is the square of {overscore (S)}_(x′,y′)(t).

[0107] For the rest of the discussion, the scaling function will be defined as the function shown in equation (5). It will be understood, however, that the invention is not limited to the scaling functions shown in equations (4) or (5). It comprises any function that accomplishes the purpose required of the scaling function.

[0108] Referring again to the non-limiting example embodiment of FIG. F300, the weighted slant stack processing 2004 then multiplies (block 3008) the zero-offset or common offset data, on a point-by-point basis, by the scaling function (meaning that the zero-offset or common offset data at location (x′,y′) and at depth t, is multiplied by the scaling function at location (x′,y′) and at depth t₁) to produce the following result (block 3008): $\begin{matrix} \frac{S_{x^{\prime},y^{\prime}}(t)}{{\overset{- 2}{S}}_{x^{\prime},y^{\prime}}(t)} & (6) \end{matrix}$

[0109] The weighted slant stack processing 2004 then enters a loop in which the first process is to select a subvolume of data to transform (block 3010). The volume consists essentially of, in one embodiment, a rectangular volume in the spatial dimensions. In another embodiment, the volume 5002 consists essentially of a square volume, as shown in FIG. F500. For simplicity, the traces within volume 5002 are not shown in FIG. F500. They are illustrated end-on in FIG. F600. Whatever the shape, the volume 5002 encompasses a set of traces 6002 arrayed within the boundaries of the volume, as shown in FIG. F600. Similarly, the weighted slant stack processing 2004 selects a corresponding subvolume of scaling functions (block 3011).

[0110] In example embodiments in which the weighted slant stack processing 2004 is to perform a two-dimensional slant stack, as discussed below, the volume is along one of the x or y axes (for example, volume 6004 or volume 6006, respectively). In another example, it is along an angle to the two axes (for example, volume 6008), and includes a line of, preferably, seven traces. Other examples will occur to those of skill in the art. In an example embodiment in which the weighted slant stack processing 2004 is to perform a three-dimensional slant stack, as discussed below, the volume is, in one sub-example, a seven-by-seven, two-dimensional volume of traces which includes all of the traces shown in FIG. F600. Other three-dimensional parameters are useful in other embodiments and will occur to those of ordinary skill without further elaboration.

[0111] In the next process, the weighted slant stack processing 2004 transforms the selected subvolume into the slant-stack domain (block 3012). The slant-stack domain may be referred to as the τ-p domain in two dimensions and as the τ-p_(x)-p_(y) domain in three dimensions. Note that for simplicity FIGS. F300 and F400 show only the equations for the three-dimensional case. The equations for the two-dimensional case are shown below.

[0112] In a two-dimensional weighted slant stack using, for example, volume 6004, the following computation is performed: $\begin{matrix} {{{{Result}1}\left( {\tau,p} \right)} = {\sum\limits_{x^{\prime} = a}^{b}\quad \frac{S_{x^{\prime},y^{\prime}}\left( {{\tau + {px}^{\prime}},x^{\prime}} \right)}{{\overset{- 2}{S}}_{x^{\prime},y^{\prime}}\left( {{\tau + {px}^{\prime}},x^{\prime}} \right)}}} & (7) \end{matrix}$

[0113] Result1(τ,p) for a particular (τ,p) pair is the sum of the result of equation (6) along line 5004 (FIG. F500), where τ is the intercept time 5008 of line 5004, and p is the slope of line 5004. In the two dimensional case the t axis 5010 bisects the two dimensional volume. The weighted slant stack processing 2004 does not evaluate Result1(τ,p_(n)) where each p_(n) corresponds to a slope containing coherent noise. Thus, coherent noise is not transformed by equation (7). The processing for volume 6006 or 6008 would be similar.

[0114] In a three-dimensional slant stack using volume 5002, the following computation is performed: $\begin{matrix} {{{{Result}1}\left( {\tau,p_{x},p_{y}} \right)} = {\sum\limits_{x^{\prime} = a}^{b}\quad {\sum\limits_{y^{\prime} = c}^{d}\quad \frac{S_{x^{\prime},y^{\prime}}\left( {{\tau + {p_{x}x^{\prime}} + {p_{y}y}},x^{\prime},y^{\prime}} \right)}{{\overset{- 2}{S}}_{x^{\prime},y^{\prime}}\left( {{\tau + {p_{x}x^{\prime}} + {p_{y}y}},x^{\prime},y^{\prime}} \right)}}}} & (8) \end{matrix}$

[0115] Result1(τ,p_(x),p_(y)) for a particular (τ,p_(x),p_(y)) triplet is the double sum of the result of equation (6) along plane 5006 (FIG. F500), where τ is the intercept time 5012 of plane 5006, p_(x) is the slope of the plane 5006 in the x direction and p_(y) is the slope of the plane 5006 in the y direction. In the three dimensional case, the t axis 5014 is through the center of volume 5002. The weighted slant stack processing 2004 does not evaluate Result1(τ,p_(n),p_(m)) where each (p_(n),p_(m)) corresponds to a slope containing coherent noise. Thus, coherent noise is not transformed by equation (8).

[0116] In the next process, the weighted slant stack processing 2004 performs a similar function on the scaling functions (block 3014) to produce the following result for two-dimensional slant stacks: $\begin{matrix} {{{Result}\quad 2\left( {\tau,p} \right)} = {\sum\limits_{x^{\prime} = a}^{b}\quad \frac{1}{{\overset{- 2}{S}}_{x^{\prime},y^{\prime}}\left( {{\tau + {px}^{\prime}},x^{\prime}} \right)}}} & (9) \end{matrix}$

[0117] and the following result for three-dimensional slant stacks: $\begin{matrix} {{{Result}\quad 2\left( {\tau,p_{x},p_{y}} \right)} = {\sum\limits_{x^{\prime} = a}^{b}\quad {\sum\limits_{y^{\prime} = c}^{d}\quad \frac{1}{{\overset{- 2}{S}}_{x^{\prime},y^{\prime}}\left( {{\tau + {p_{x}x^{\prime}} + {p_{y}y}},x^{\prime},y^{\prime}} \right)}}}} & (10) \end{matrix}$

[0118] In the next process, the weighted slant stack processing 2004 divides (block 3016) Result1 by Result2: $\begin{matrix} {{{Result}\quad 3\left( {\tau,p} \right)} = \frac{{Result}\quad 1\left( {\tau,p} \right)}{{Result}\quad 2\left( {\tau,p} \right)}} & (11) \end{matrix}$

[0119] for two-dimensional slant stacks and $\begin{matrix} {{{Result}\quad 3\left( {\tau,p_{x},p_{y}} \right)} = \frac{{Result}\quad 1\left( {\tau,p_{x},p_{y}} \right)}{{Result}\quad 2\left( {\tau,p_{x},p_{y}} \right)}} & (12) \end{matrix}$

[0120] for three-dimensional slant stacks.

[0121] In the next process, the weighted slant stack processing 2004 multiplies Result3 by the number of traces N in the subvolume (block 4002 in FIG. F400).

Result4=N·Result3  (13)

[0122] For example, for the two-dimensional subvolume 6004 N is 7 and for the three-dimensional volume 5002 N is 49. Multiplication by N recovers a portion of the amplitude of the seismic data that was lost in performing process 3016.

[0123] The weighted slant stack processing 2004 further recovers the amplitude of the seismic data by taking the Fourier transform of Result4 (block 4004):

Result5=FFT(Result4)  (14)

[0124] For 2D weighted slant stacks, the data is then multiplied by the angular frequency ω in the frequency domain (block 4006):

Result6=ωResult5  (15)

[0125] and for 3D weighted slant stacks, the data is then multiplied by the square of the angular frequency in the frequency domain (block 4006):

Result6=ω²·Result5

[0126] and an inverse Fourier transform is applied (block 4008):

Result7=FFT⁻¹(Result6)  (16)

[0127] The weighted slant stack processing 2004 filters Result7 to remove aliased data (block 4010) and applies a matched filter to compensate for the limited spatial aperture of the data (block 4012).

[0128] The weighted slant stack processing 2004 next inverse transforms the data from the slant-stack domain to the time-space domain (block 4014), using the following equation in the two-dimensional case: $\begin{matrix} {{d\left( {t,x} \right)} = {\sum\limits_{p}{R\left( {{t - {px}},p} \right)}}} & (17) \end{matrix}$

[0129] and using the following equation in the three-dimensional case: $\begin{matrix} {{d\left( {t,x,y} \right)} = {\sum\limits_{p_{x}}{\sum\limits_{p_{y}}{R\left( {{t - {xp}_{x} - {yp}_{y}},p_{x},p_{y}} \right)}}}} & (18) \end{matrix}$

[0130] Finally, the weighted slant stack processing 2004 scales the result by Δx (the trace interval in x), Δy (the trace interval in y), Δp, (the dip increment in x), and Δpy (the dip increment in y) (block 4016) in the three dimensional case and Δp (the dip increment) and Δx (the trace interval in x) in the two dimensional case.

[0131] At this point, the weighted slant stack processing 2004 has reached the end of the loop and returns to step 3010, where it selects a new subvolume. In the two-dimensional case, the new volume may be volume 6004 shifted one trace in the x direction, or an entire row in the y direction. In the three-dimensional case, the new volume may be volume 5002 shifted a row in the x direction or y direction or any other shift that accomplishes the purpose. The weighted slant stack processing 2004 continues to run in this loop until all of the desired data has been processed. For convenience, the result in the two-dimensional case will be referred to as R(τ,p) and the result in the three-dimensional case will be referred to as R(τ,p_(x),p_(y)).

[0132] In one example embodiment, the anti-aliasing filter 4010 includes two components, as shown in FIG. F700. A spatial anti-aliasing filter 7002 addresses aliasing distortions caused by sampling in the spatial domain. A p-anti-aliasing filter 7004 addresses aliasing distortions caused by the transform in the p domain.

[0133] With regard to the spatial anti-aliasing filter 7002, traces with dips whose magnitudes are less than or equal to a Nyquist dip do not need anti-aliasing filtering, while traces with dips whose magnitudes are greater than the Nyquist dip need such filtering. The spatial anti-aliasing filter 7002 may be implemented in two-dimensions, by computing the Nyquist dip (block 8002), as shown in FIG. F800, using equation (19): $\begin{matrix} {p_{N} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot f_{Nyquist}}}} & (19) \end{matrix}$

[0134] where

[0135] p_(N) is the Nyquist dip;

[0136] Δx is the spatial sampling interval; and

[0137] f_(Nyquist) is the Nyquist frequency.

[0138] in three-dimensions, the Nyquist dip would be computed using equation (20): $\begin{matrix} {p_{N} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot f_{Nyquist}}} & (20) \end{matrix}$

[0139] where

[0140] Δx and Δy are the sampling intervals in the x and y directions, respectively. The spatial anti-aliasing filter 7002 next selects those dip traces whose magnitude exceed p_(N) (block 8004). In two dimensions, the current dip p is compared to p_(N). In three dimensions, the current dip defined by equation (21) is compared to p_(N):

p={square root}{square root over (p)} _(x) ² +p _(y) ²   (21)

[0141] For each dip trace in which the dip exceeds p_(N), the spatial anti-aliasing filter calculates the aliasing frequency f_(alias) (block 8006). In two dimensions, f_(alias) is calculated using equation (22): $\begin{matrix} {f_{alias} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot p}}} & (22) \end{matrix}$

[0142] where

[0143] f_(alias) is the Nyquist frequency.

[0144] In three dimensions, f_(alias) is calculated using equation (23): $\begin{matrix} {f_{alias} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot \sqrt{p_{x}^{2} + p_{y}^{2}}}} & (23) \end{matrix}$

[0145] This step need only be performed once and f_(alias) values are stored for multiple uses. The spatial anti-aliasing filter 7002 next performs a Fast Fourier Transform (FFT) on each dip trace whose dip exceeds p_(N) (block 8008). The spatial anti-aliasing filter 7002 retains all complex samples whose frequency is less than or equal to f_(alias) and zeroes out all other complex samples (block 8010). Finally, the anti-aliasing filter applies a cosine taper to reduce oscillations due to truncation (block 8012), calculated as shown below:

[0146] SIZE=NF−L2−1

[0147] for i=L2 to NF: $\begin{matrix} {{f\quad {{taper}(i)}} = {0.5 \cdot \left( {1 - {\cos \left( {\pi \cdot \frac{{NF} - i}{SIZE}} \right)}} \right)}} & (24) \end{matrix}$

[0148] next i

[0149] where

[0150] ftaper(i) is the cosine taper function;

[0151] L2 is the sample corresponding to some percent (usually 10 percent) of f_(alias);

[0152] NF is the sample corresponding to f_(alias); and

[0153] SIZE is the length of the taper in samples.

[0154] For example, if the total recorded time is 5 seconds at 4 msecs, df=0.2 Hz, where df is the sampling interval in frequency (i.e., 1/(total recorded time)) and f_(alias)=80 Hz. Ten percent of f_(alias) is 8 Hz and L2=0.1. f_(alias)/df+1=41 samples.

[0155] The p-anti-aliasing filter 7004 compensates for a form of aliasing, known as “p-aliasing,” which can occur even when the seismic data is not spatially aliased, as illustrated in FIG. F900. A set of synthetic traces 9002 show several parallel, horizontal events with dip equal to zero. As can be seen, there is no spatial aliasing in the data.

[0156] p-aliasing becomes apparent when the weighted slant stack algorithm described above is applied once with a flat dip 9004 and a second time with a steep dip 9006, which intersects a series of peaks from the respective traces. When the algorithm is applied with the flat dip 9004, stacking the data will produce the proper events. When the algorithm is applied with the steep dip 9006, however, stacking the data will produce another set of events, which are anomalies of the processing and add noise to the result. Thus, for the set of flat events illustrated in FIG. F900, there is an ambiguity. The true dip is zero but there is a contribution from a steep dip 9006. If the processing is searching for a steep dip it will find an illegitimate stack contribution for steep dip 9006.

[0157] The p-anti-aliasing filter 7004 addresses the p-aliasing problem. One non-limiting example embodiment of the p-anti-aliasing filter 7004, illustrated in FIG. F1000, divides the total dip range into several sub-ranges. In one non-limiting example, the sub-ranges include one sub-range centered on zero dip and two sub-ranges adjacent to the center sub-range. For example, if the total dip range is −12 milliseconds/trace to +12 milliseconds/trace, one possible division would be: a center sub-range from −4 milliseconds/trace to +4 milliseconds/trace, a steep negative sub-range from −12 milliseconds/trace to −4 milliseconds/trace, and a steep positive sub-range from +4 milliseconds/trace to +12 milliseconds/trace.

[0158] The weighted slant stack algorithm described above is then applied to the flat dip data, that is, the data in the center sub-range (block 1002). The filtered data is then subtracted (block 1004) from the original data. The result will be noise plus dipping events in the ranges of, for the example discussed in the previous paragraph, −12 milliseconds/trace to −4 milliseconds/trace and +4 milliseconds/trace to +12 milliseconds/trace. The result is then processed through the weighted slant stack algorithm limiting the dip range to −12 milliseconds/trace to −4 milliseconds/trace and +4 milliseconds/trace to +12 milliseconds/trace (block 1006). Since this excursion of the data through the weighted slant stack algorithm will not encounter flat events, the ambiguity noted above will be removed, thereby avoiding the p-aliasing phenomenon. The output of the second iteration through the weighted slant stack algorithm is then added to the output of the first excursion (block 1008).

[0159] The matched filter to compensate for the limited spatial aperture of the data (block 4012), illustrated in FIG. F100, is a conventional rho filter 11002 followed by a residual filter 11004. The residual filter 11004 is a Wiener filter based on the transform of a set of spikes of unit amplitude into and out of the weighted slant-stack domain. After being subjected to forward and inverse transforms, the output trace (at the grid center) will contain the distortions associated with the transform. The resulting inverse filter can be saved and applied to the data being processed when the conventional rho filter is applied.

[0160] Calculation of the residual filter, illustrated in FIG. F1200, begins by building a grid of traces, called input spike traces, with a spike of amplitude equal to 1.0 at the middle of the trace (block 12002). The grid size may be selected by the user and is typically 8×8 or 6×6. If the spike trace is 4.0 seconds long, the unit spike will be at sample 501 assuming a 4 millisecond sampling rate. The grid may consist of a single unit spike trace that is reused at each grid location.

[0161] The grid of traces is then transformed to the weighted slant stack domain (block 12004) and the center trace of the grid is transformed back into the space-time domain (block 12006), as discussed above. The parameters used for the transforms are the same as the parameters used for the data being processed so that the grid of traces will undergo the same distortions.

[0162] The trace is scaled (block 12008) as described above and processed through a one dimensional FFT (block 12010) and a conventional rho filter (block 12012).

[0163] The residual filter is then determined by applying equation (25) to the result (block 12014): $\begin{matrix} {{{FIL}(\omega)} = \frac{{{TAR}(\omega)} \cdot {{IN}^{*}(\omega)}}{{{{IN}(\omega)} \cdot {{IN}^{*}(\omega)}} + {1.0E} - 0.5}} & (25) \end{matrix}$

[0164] where

[0165] FIL(ω)) is the inverse filter;

[0166] TAR(ω)is the target frequency array which is a flat spectrum with amplitude equal to 1.0 and no phase;

[0167] IN((ω) is the frequency array for the grid center trace after the forward and inverse slant stack processes; and

[0168] * represents the complex conjugate.

[0169] The quantity 1.0e^(−0.5) is to ensure stability in the inverse filter design.

[0170] A cosine taper, such as equation (24), is then applied to FIL(ω). An inverse FFT is then applied (block 12016) and the result is saved and applied to the data being processed along with the conventional rho filter.

[0171] The invention is implemented in various embodiments in hardware, software, or a combination of both. However, preferably, the invention is implemented in computer programs executing on programmable computers each comprising a processor, a data storage system (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code is applied to input data to perform the functions described above and generate output information. The output information is applied to one or more output devices, in known fashion.

[0172] Each program is preferably implemented in a high level procedural or object oriented programming language (such as C++, C, FORTRAN 77 or FORTRAN 90) to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or an interpreted language.

[0173] Each such computer program is preferably stored on a storage media or device (e.g., ROM or magnetic/optical disk or diskette) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.

[0174] The foregoing describes preferred embodiments of the invention and is given by way of example only. The invention is not limited to any of the specific features described herein, but includes all variations thereof within the scope of the appended claims. 

What is claimed is:
 1. A method of attenuating noise in seismic data, the seismic data comprising a plurality of input traces, the method comprising: transforming the seismic data from the space-time domain into the slant-stack domain; excluding, during said transforming into the slant-stack domain, seismic data having a preselected characteristic; and inverse transforming the transformed data from the slant-stack domain into the time-space domain.
 2. The method of claim 1 wherein said transforming comprises transforming the seismic data from the space-time domain into the τ-p domain.
 3. The method of claim 2 wherein said excluding comprises excluding data corresponding to the coordinates: t=τ+px, where t is time, τ is a t-axis intercept, x is a signed distance from an origin and p is a slope.
 4. The method of claim 1 wherein said transforming comprises transforming the seismic data from the space-time domain into the τ-p_(x)-p_(y) domain.
 5. The method of claim 4 wherein said excluding comprises excluding data corresponding to the coordinates: t=τ+p_(x)x+p_(y)y, where t is time, τ is a t-axis intercept, x is a signed distance from an origin in a first direction, y is a signed distance from an origin in a second direction, p_(x) is slope in the first direction and p_(y) is slope in the second direction.
 6. A method of attenuating noise in seismic data comprising accepting seismic data comprising a plurality of traces arrayed in two physical dimensions and a time dimension; transforming the seismic data into the slant stack domain using a Radon transform.
 7. The method of claim 6 wherein the Radon transform comprises a three-dimensional transform using the following equation: ${T\left( {\tau,p_{x},p_{y}} \right)} = \frac{\begin{matrix} {N \cdot {\sum\limits_{x = a}^{b}{\sum\limits_{y = c}^{d}{{S_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)} \cdot}}}} \\ {F_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)} \end{matrix}}{\sum\limits_{x = a}^{b}{\sum\limits_{y = c}^{d}{F_{x,y}\left( {{\tau + {p_{x}x} + {p_{y}y}},x,y} \right)}}}$

where: N is the number of traces in the plurality of traces; S_(x,y)(t) is a subset of the plurality of traces; F_(x,y)(t) is a scaling function; x is a distance in a first direction; p_(x) is a slope in the first direction; y is a distance in a second direction; p_(y) is a slope in the second direction; a and b for the first direction and c and d for the second direction define a volume to be transformed; t is time in the space-time domain; τ is intercept time in the τ-p domain; and T(τ,p_(x), p_(y)) is the output data.
 8. The method of claim 7 wherein ${F_{x,y}(t)} = \frac{1}{{\overset{\_}{S}}_{x,y}(t)}$

where {overscore (S)}_(x,y)(t) is an average of S_(x,y)(t) over predetermined ranges of x,y and t for each x, y and t.
 9. The method of claim 7 wherein ${F_{x,y}(t)} = \frac{1}{{\overset{\_}{S}}_{x,y}^{2}(t)}$

where {overscore (S)}² _(x,y)(t) is an average of S² _(x,y)(t) over predetermined ranges of x,y and t for each x, y and t.
 10. The method of claim 7 wherein a, b, c and d are such that x and y span S_(x,y)(t).
 11. The method of claim 7 wherein a, b, c and d are such that x and y define a subset of S_(x,y)(t).
 12. The method of claim 11 wherein the subset defining S_(x,y)(t) is the full set.
 13. The method of claim 6 further comprising Fourier transforming T(τ,p_(x),p_(y)); multiplying the Fourier-transformed data by (ω²; and inverse-Fourier transforming the Fourier-transformed data.
 14. The method of claim 6 wherein the Radon transform comprises a two-dimensional transform using the following equation: ${T\left( {\tau,p} \right)} = \frac{N \cdot {\sum\limits_{x = a}^{b}{{S_{x,y}\left( {{\tau + {p\quad x}},x} \right)} \cdot {F_{x,y}\left( {{\tau + {p\quad x}},x} \right)}}}}{\sum\limits_{x = a}^{b}{F_{x,y}\left( {{\tau + {p\quad x}},x} \right)}}$

where: N is the number of traces in the plurality of traces; S_(x,y)(t) is a subset of the plurality of traces; F_(x,y)(t) is a scaling function; x is a distance from the origin; p is a slope; a and b define a slice of data to be transformed; t is time in the space-time domain; τ is intercept time in the τ-p domain; and T(τ,p) is the output data.
 15. The method of claim 6 further comprising Fourier transforming T(τ,p); multiplying the Fourier-transformed data by ω; and inverse-Fourier transforming the Fourier-transformed data.
 16. The method of claim 6 further comprising applying an anti-aliasing filter.
 17. The method of claim 16 wherein applying is performed in the slant stack domain.
 18. The method of claim 6 further comprising applying a matched filter to compensate for limited spatial aperture.
 19. The method of claim 6 further comprising inverse Radon transforming the transformed data.
 20. A method of attenuating noise in seismic data, the seismic data comprising a plurality of traces arrayed in two physical dimensions and the time dimension, the method comprising (a) selecting a volume, the volume comprising a subset of the plurality of traces; (e) transforming the volume into the slant stack domain using a Radon transform; (f) inverse transforming the transformed volume into the time domain using a inverse Radon transform; and (g) repeating elements (b) and (c) with a new volume.
 21. The method of claim 20 wherein the new volume overlaps the volume.
 22. The method of claim 20 further comprising iteratively repeating elements (b) and (c) with new volumes for each iteration, each successive new volume overlapping the preceding new volume.
 23. The method of claim 22 wherein the plurality of traces are arrayed in rows and the overlap between each successive new volume and the preceding new volume is one row.
 24. A method of attenuating noise in zero offset and/or common offset seismic data, the seismic data comprising a plurality of input traces, the method comprising (i) computing scaling traces from the input traces; (j) modifying the input traces using the scaling traces; (k) slant-stack transforming the modified input traces, excluding slopes corresponding to coherent noise from the slant-stack transform, to produce slant-stack-domain signal traces; (l) slant-stack transforming the scaling traces to produce slant-stack-domain scaling traces; (m) modifying the slant-stack-domain signal traces using the slant-stack-domain scaling traces; (n) scaling and filtering the modified slant-stack-domain signal traces to produce weighted slant stacked traces; (o) inverse slant-stack transforming the weighted slant stacked traces; and (p) scaling the inverse-slant-stack-transformed weighted slant stacked traces.
 25. A computer program for attenuating noise in seismic data, the computer program executing on a computer processor, the computer program residing on computer readable media, the computer program comprising computer code for causing the computer processor to: transform the seismic data from the time-space domain into the slant-stack domain; wherein the computer code for causing the computer processor to transform the seismic data comprises computer code for excluding seismic data having a preselected characteristic; and transforming the transformed data from the slant-stack domain into the time-space domain.
 26. An apparatus for attenuating noise in seismic data, the seismic data comprising a plurality of input traces, the apparatus comprising: means for transforming the seismic data from the time-space domain into the slant-stack domain; wherein the transforming means comprises means for excluding, during said transforming into the slant-stack domain, seismic data having a preselected characteristic; and means for transforming the transformed data from the slant-stack domain into the time-space domain.
 27. An apparatus for anti-alias filtering seismic traces comprising means for calculating a Nyquist dip p_(N); means for selecting one or more dip traces having magnitudes greater than the Nyquist dip; means for calculating an alias frequency f_(alias); means for applying an FFT to the selected dip traces to produce transformed selected dip traces comprising samples; and means for zeroing all samples in each of the transformed selected dip traces with frequencies greater than f_(alias).
 28. The apparatus of claim 27 further comprising means for cosine tapering the zeroed transformed selected dip traces.
 29. The apparatus of claim 27 wherein the apparatus comprises a three-dimensional anti-aliasing filter and the means for calculating a Nyquist dip p_(N) comprises applying the following equation: ${p_{N} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot f_{Nyquist}}};$

where Δx and Δy are sampling intervals in the x and y directions, respectively; and f_(Nyquist) is the Nyquist frequency.
 30. The apparatus of claim 27 wherein the apparatus comprises a two-dimensional anti-aliasing filter and the means for calculating a Nyquist dip p_(N) comprises applying the following equation: ${p_{N} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot f_{Nyquist}}}};$

where Δx is the sampling interval in the x direction; and f_(Nyquist) is the Nyquist frequency.
 31. The apparatus of claim 27 wherein the apparatus comprises a three-dimensional anti-aliasing filter and the means for calculating an alias frequency f_(alias) comprises applying the following equation: ${f_{alias} = \frac{\sqrt{\frac{1}{\Delta \quad x^{2}} + \frac{1}{\Delta \quad y^{2}}}}{2 \cdot \sqrt{p_{x}^{2} + p_{y}^{2}}}};$

where Δx and Δy are the sampling intervals in the x and y directions, respectively; p_(x) is the current dip in the x-direction; p_(y) is the current dip in the y-direction; and f_(alias) is the Nyquist dip.
 32. The apparatus of claim 27 wherein the apparatus comprises a two-dimensional anti-aliasing filter and the means for calculating an alias frequency f_(alias) comprises applying the following equation: $f_{alias} = \frac{1}{{2 \cdot \Delta}\quad {x \cdot p}}$

where Δx is the sampling interval in the x direction; and p is the current dip.
 33. A method for p-anti-alias filtering seismic traces comprising applying a weighted slant stack algorithm to the seismic data for a flat dip range to produce a first result; subtracting the first result from the seismic data to produce a second result; applying the weighted slant stack algorithm to the second result to produce a third result; and adding the third result to the first result.
 34. The method of claim 33 wherein the flat dip range is centered around zero dip. 